As the use of personal computing devices to read or view content becomes more commonplace, there is a growing need to provide consumers with more efficient ways to update that content. Examples of content may include any digital content that a consumer may download onto their personal computing device, such as, e.g., books, newspapers, videogames, etc. For example, a consumer may purchase content in the form of a digital book for their personal computing device. When the consumer initially downloads the content for the digital book, the consumer may download the digital book in its entirety, which may be a lengthy process depending on the size of the book.
Additionally, authors of digital content may subsequently revise their content for many reasons. For example, a typographical error in a book may be detected, and the author may wish to revise the digital content to correct this mistake. If a consumer has downloaded an older version of the digital content containing the typographical error, the consumer may wish to subsequently update the content to reflect this correction. Typically, the consumer may need to download the updated version of the digital content in its entirety. While downloading the digital content in its entirely may be fast for smaller amounts of content, this process may be time-consuming and inefficient, especially for minor changes to large amounts of content.
One solution to this issue may be to provide custom patches between versions, enabling a consumer to download only the portion of content that has changed between those versions. Custom patches may provide instructions for downloading only the revised portions between one version of the content and another version of content. However, a custom patch is designed only for a specific pair of versions. For example, a custom patch designed for updating a first version of content to a second version of content may enable a consumer having the first version of content to download only the changes made in the second version of content. However, as several versions of the content are created, it may become difficult to use custom patches to update content across multiple revisions. For example, if a first version of content needs to be updated to the third version of the content, the custom patch created between the first and second versions may be used to update the content to the second version, and another custom patch created between the second and third versions may be used to update the content to the third version, resulting in unnecessary data being downloaded. Although a custom patch may be created between the first and third versions of content, creating custom patches for every pair of versions may be inefficient, especially as the number of versions increases.